package com.service.device;

import com.dao.secondary.device.DeviceObdBaseInfoMapper;
import com.model.domain.device.GetDeviceObdBaseInfoDO;
import com.model.pojo.device.DeviceObdBaseInfo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;


/**
 * @Author: zql
 * @Description: OBD设备基础信息，包括sim卡信息，硬件模块版本信息服务
 * @Data: 2023-06-08
 */
@Slf4j
@Service
@RequiredArgsConstructor
public class DeviceObdBaseInfoService {
    private final DeviceObdBaseInfoMapper deviceObdBaseInfoMapper;

    /**
     * 获取分页信息
     * @author tm
     * @date 2023-06-07 1:22
     * @param getDeviceObdBaseInfoDO
     * @return List<DevicePcbBaseInfo>
     */
    public List<DeviceObdBaseInfo> getPageList(GetDeviceObdBaseInfoDO getDeviceObdBaseInfoDO){
        PageHelper.clearPage();
        PageHelper.startPage(getDeviceObdBaseInfoDO.getPage(),getDeviceObdBaseInfoDO.getPageSize(),getDeviceObdBaseInfoDO.getSortRow() + getDeviceObdBaseInfoDO.getSortOrder());
        return deviceObdBaseInfoMapper.selectList(getDeviceObdBaseInfoDO);
    }
    public List<DeviceObdBaseInfo> selectSimExpireList(GetDeviceObdBaseInfoDO getDeviceObdBaseInfoDO){
        PageHelper.clearPage();
        PageHelper.startPage(getDeviceObdBaseInfoDO.getPage(),getDeviceObdBaseInfoDO.getPageSize(),getDeviceObdBaseInfoDO.getSortRow() + getDeviceObdBaseInfoDO.getSortOrder());
        return deviceObdBaseInfoMapper.selectSimExpireList(getDeviceObdBaseInfoDO);
    }
    public List<Map<String,Object>> getActivationDataInDay(GetDeviceObdBaseInfoDO getDeviceObdBaseInfoDO){
        PageHelper.clearPage();
        PageHelper.startPage(getDeviceObdBaseInfoDO.getPage(),getDeviceObdBaseInfoDO.getPageSize(),getDeviceObdBaseInfoDO.getSortRow() + getDeviceObdBaseInfoDO.getSortOrder());
        return deviceObdBaseInfoMapper.selectActivationDataInDay(getDeviceObdBaseInfoDO);
    }


    public List<DeviceObdBaseInfo> getAllList(GetDeviceObdBaseInfoDO getDeviceObdBaseInfoDO){
        PageHelper.clearPage();
        PageHelper.orderBy(getDeviceObdBaseInfoDO.getSortRow() + getDeviceObdBaseInfoDO.getSortOrder());
        return deviceObdBaseInfoMapper.selectList(getDeviceObdBaseInfoDO);
    }

    public void updateList(List<DeviceObdBaseInfo> baseList){
        deviceObdBaseInfoMapper.updateListSelective(baseList);
    }

    public DeviceObdBaseInfo getByDtu(String dtu){
        return deviceObdBaseInfoMapper.selectByDtu(dtu);
    }

    public List<DeviceObdBaseInfo> getByImei(String imei){
        return deviceObdBaseInfoMapper.selectByImei(imei);
    }
    public List<DeviceObdBaseInfo> getBySim(String sim){
        return deviceObdBaseInfoMapper.selectBySim(sim);
    }

    public DeviceObdBaseInfo getById(Long id){
        return deviceObdBaseInfoMapper.selectByPrimaryKey(id);
    }

    public int update(DeviceObdBaseInfo baseInfo){
        return deviceObdBaseInfoMapper.updateByPrimaryKeySelective(baseInfo);
    }

    public long countByBatchId(long batchId){
        return deviceObdBaseInfoMapper.countByBatchId(batchId);
    }
    public long countByDomainId(long domainId){
        return deviceObdBaseInfoMapper.countByDomainId(domainId);
    }
}
